
import router from '@/router/index';
import axios from 'axios';
// 创建axios实例
const ENV = process.env.NODE_ENV;
const host =
    ENV === 'development' ? 'http://localhost:8000' : 'http://localhost:8000';

const service = axios.create({
    baseURL: host,
    timeout: '3000',
});

// 创建拦截器
service.interceptors.request.use((config) => {
    if (config.url.indexOf('register') < 0 && config.url.indexOf('login') < 0) {
        // 此次请求不是注册也不是登录 会将当前token值传给后端
        config.headers.authorization = localStorage.getItem('token'); // 将token放置在header
    }
    return config;
});

// 响应拦截

service.interceptors.response.use((res) => {
    //解构赋值
    const { code, message } = res.data;
    const data =res.data
    // console.log(message);
    if (code === 0) {
        return data;
    } else {
        // console.log(data); 验证解构赋值 若左边 多于右边 那么多出来的那项值 为 'undefined'
        ElMessage({
            message: message,
            type: 'error',
            showClose: true,
        });
    }
    if (message === '身份认证失败') {
        router.push('/login');
    }
});

// 封装请求函数

const request = (options) => {
    if (options.method === 'get') {
        //若是get请求则添加一个变量params 并且将参数给params
        options.params = options.data;
    }
    // 最终由service发送请求
    return service(options);
};

export default request;
